home *** CD-ROM | disk | FTP | other *** search
- ;**********************************************************************
- ;
- ; FINITE IMPULSE RESPONSE (FIR)
- ; LINEAR PHASE DIGITAL FILTER DESIGN
- ; REMEZ EXCHANGE ALGORITHM
- ;
- ; LOWPASS FILTER
- ;
- ; FILTER LENGTH = 16
- ;
- ; ***** IMPULSE RESPONSE *****
- ;
- ; H( 1) = 256.268 = H( 16)
- ; H( 2) = 237.613 = H( 15)
- ; H( 3) = 325.903 = H( 14)
- ; H( 4) = 416.034 = H( 13)
- ; H( 5) = 500.751 = H( 12)
- ; H( 6) = 572.556 = H( 11)
- ; H( 7) = 624.633 = H( 10)
- ; H( 8) = 652.009 = H( 9)
- ;
- ; BAND 1 BAND 2
- ; LOWER BAND EDGE .0000000 .0800000
- ; UPPER BAND EDGE .0700000 .5000000
- ; DESIRED VALUE 1.0000000 .0000000
- ; WEIGHTING 1.0000000 100.0000000
- ; DEVIATION .9685936 .0096859
- ; DEVIATION IN DB 5.8831210 -40.2771700
- ;
- ; EXTREMAL FREQUENCIES--MAXIMA OF THE ERROR CURVE
- ; .0700000 .0800000 .1034375 .1542187 .2128125
- ; .2753125 .3397656 .4022656 .4686719
- ;
- ;**********************************************************************
- ;
- ; CYCLES | EXECUTION TIME | PROGRAM MEMORY | DATA MEMORY
- ; | (MICROSECONDS) | (WORDS) | (WORDS)
- ; -------|----------------|----------------|-------------
- ; | | |
- ; xxx | xxxx | xxx | xxx
- ; | | |
- ; -------------------------------------------------------
- ;
- ; (EXCLUDING INITIALIZATION AND I/O)
- ;
- ;***********************************************************
- ;
- ;
- XN: EQU 0
- XNM1: EQU 1
- XNM2: EQU 2
- XNM3: EQU 3
- XNM4: EQU 4
- XNM5: EQU 5
- XNM6: EQU 6
- XNM7: EQU 7
- XNM8: EQU 8
- XNM9: EQU 9
- XNM10: EQU 10
- XNM11: EQU 11
- XNM12: EQU 12
- XNM13: EQU 13
- XNM14: EQU 14
- XNM15: EQU 15
- XNM16: EQU 16
- XNM17: EQU 17
- ;
- H0: EQU 18
- H1: EQU 19
- H2: EQU 20
- H3: EQU 21
- H4: EQU 22
- H5: EQU 23
- H6: EQU 24
- H7: EQU 25
- H8: EQU 26
- ;
- MODE: EQU 27
- CLOCK: EQU 28
- MASK1: EQU 29
- MASK2: EQU 30
- YN: EQU 31
- ONE: EQU 32
- ;
- ORG 0
- ;
- B START
- ;
- ; COEFFICIENTS ARE INITIALLY ;
- ; STORED IN PROGRAM MEMORY ;
- ;
- ; DUE TO THE SYMMETRY OF THE IMPULSE RESPONSE ;
- ; ONLY HALF OF THE SAMPLES OF THE IMPULSE ;
- ; RESPONSE ARE STORED. THIS MEANS THAT ;
- ; h(N-1-n) = h(n). ;
- ;
- COEF: dw 256 ;= H( 16)
- dw 238 ;= H( 15)
- dw 326 ;= H( 14)
- dw 416 ;= H( 13)
- dw 501 ;= H( 12)
- dw 573 ;= H( 11)
- dw 625 ;= H( 10)
- dw 652 ;= H( 9)
- dw 000AH
- dw 0200H
- dw 0800H
- ENDC: dw 08000H
- ;
-
- START: LDPK 0
- ;
- LACK 1
- SACL ONE ; CONTENT OF ONE IS 1 ;
- ;
- LARK AR0,MASK2 ; THIS SECTION OF CODE LOADS ;
- LARK AR1,12 ; THE FILTER COEFFICIENTS AND ;
- LACK ENDC ; OTHER VALUES FROM PROGRAM ;
- LOAD: LARP AR0 ; MEMORY TO DATA MEMORY ;
- TBLR *-,AR1
- SUB ONE
- BANZ LOAD
- ;
- NOP
- NOP
- ;
- WAIT: BIOZ NXTPT ; BIO PIN GOES LOW WHEN A ;
- B WAIT ; NEW SAMPLE IS AVAILABLE ;
- ;
- NXTPT: IN XN,PA3 ; BRING IN THE NEW SAMPLE XN ;
- LAC XN,4
- SUB ONE,15
- SACL XN,0
- ;
- ZAC
- ;
- LT XNM17; DUE TO SYMMETRY h(0) = h(79) ;
- MPY H0 ; x(n-79) * h(79) ;
- ;
- LTD XNM16
- MPY H1 ; h(1) = h(78) ;
- ;
- LTD XNM15
- MPY H2
- ;
- LTD XNM14
- MPY H3
- ;
- LTD XNM13
- MPY H4
- ;
- LTD XNM12
- MPY H5
- ;
- LTD XNM11
- MPY H6
- ;
- LTD XNM10
- MPY H7
- ;
- LTD XNM9
- MPY H8
- ;
- LTD XNM8
- MPY H8
- ;
- LTD XNM7
- MPY H7
- ;
- LTD XNM6
- MPY H6
- ;
- LTD XNM5
- MPY H5
- ;
- LTD XNM4
- MPY H4
- ;
- LTD XNM3
- MPY H3
- ;
- LTD XNM2
- MPY H2
- ;
- LTD XNM1
- MPY H1
- ;
- LTD XN
- MPY H0
- ;
- APAC
- ;
- sach yn,4
- LAC YN,12
- ADDH MASK1
- SACH YN,0
- ;
-
- OUT YN,PA4 ; OUTPUT THE FILTER RESPONSE y(n) ;
- ;
- B WAIT ; GO GET THE NEXT POINT ;
- ;
- END
-